package com.av.acciones.tarjeta;

import java.util.Map;

import org.apache.log4j.Logger;

import com.av.acciones.BaseAccion;
import com.av.db.dataobjects.Tarjeta;
import com.av.db.layer.interfaces.TarjetaLayer;
import com.av.exceptions.AvException;
import com.av.rmi.Parametro;
import com.av.rmi.Parametro.Tipo;

/**
 * Accion que obtiene la primera tarjeta con base en su codigo o numero de placa
 * 
 * @author Victor J Morales R
 * 
 */
public class ObtenerPorCodigoONumPlacaAccion extends BaseAccion {

	private static Logger log = Logger
			.getLogger(ObtenerPorCodigoONumPlacaAccion.class);

	@SuppressWarnings("unchecked")
	@Override
	public Parametro ejecutar(Parametro parametro) throws AvException {
		log.info("Inicio - ejecutar(Parametro parametro)");

		TarjetaLayer tl = (TarjetaLayer) getBean(TarjetaLayer.BEAN_NAME);
		Map<String, String> m = null;
		if (parametro.getValor(Tipo.INPUT) instanceof Map<?, ?>) {
			m = (Map<String, String>) parametro.getValor(Tipo.INPUT);
			parametro.setValor(Tipo.OUTPUT, tl.obtenerPorCodigoONumPlaca(m
					.get(Tarjeta.CODIGO), m.get(Tarjeta.NUM_PLACA)));
		}

		log.info("Fin - ejecutar(Parametro parametro)");

		return parametro;
	}
}// ObtenerPorCodigoONumPlacaAccion